MAYBE 3.099 H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/empty.hs
H-Termination of the given Haskell-Program with start terms could not be shown:



HASKELL
  ↳ BR

mainModule Main
  ((enumFromThen :: Float  ->  Float  ->  [Float]) :: Float  ->  Float  ->  [Float])

module Main where
  import qualified Prelude



Replaced joker patterns by fresh variables and removed binding patterns.

↳ HASKELL
  ↳ BR
HASKELL
      ↳ COR

mainModule Main
  ((enumFromThen :: Float  ->  Float  ->  [Float]) :: Float  ->  Float  ->  [Float])

module Main where
  import qualified Prelude



Cond Reductions:
The following Function with conditions
undefined 
 | False
 = undefined

is transformed to
undefined  = undefined1

undefined0 True = undefined

undefined1  = undefined0 False



↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
HASKELL
          ↳ Narrow
          ↳ Narrow

mainModule Main
  (enumFromThen :: Float  ->  Float  ->  [Float])

module Main where
  import qualified Prelude



Haskell To QDPs


↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
        ↳ HASKELL
          ↳ Narrow
            ↳ AND
QDP
                ↳ QDPSizeChangeProof
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
          ↳ Narrow

Q DP problem:
The TRS P consists of the following rules:

new_primMinusNat(Succ(vx40000), Succ(vx50000)) → new_primMinusNat(vx40000, vx50000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
        ↳ HASKELL
          ↳ Narrow
            ↳ AND
              ↳ QDP
QDP
                ↳ QDPSizeChangeProof
              ↳ QDP
              ↳ QDP
              ↳ QDP
          ↳ Narrow

Q DP problem:
The TRS P consists of the following rules:

new_primPlusNat(Succ(vx40000), Succ(vx30000)) → new_primPlusNat(vx40000, vx30000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
        ↳ HASKELL
          ↳ Narrow
            ↳ AND
              ↳ QDP
              ↳ QDP
QDP
                ↳ QDPSizeChangeProof
              ↳ QDP
              ↳ QDP
          ↳ Narrow

Q DP problem:
The TRS P consists of the following rules:

new_primMulNat(Succ(vx60), Succ(vx5100)) → new_primMulNat(vx60, Succ(vx5100))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
        ↳ HASKELL
          ↳ Narrow
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
QDP
                ↳ QDPSizeChangeProof
              ↳ QDP
          ↳ Narrow

Q DP problem:
The TRS P consists of the following rules:

new_primPlusInt(Succ(vx4000), Succ(vx3000), vx50) → new_primPlusInt(vx4000, vx3000, vx50)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
        ↳ HASKELL
          ↳ Narrow
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
QDP
                ↳ MNOCProof
          ↳ Narrow

Q DP problem:
The TRS P consists of the following rules:

new_iterate(vx4, vx3, vx5) → new_iterate(vx4, vx3, new_ps(vx4, vx3, vx5))

The TRS R consists of the following rules:

new_primMulInt0(vx410, vx310, Pos(vx510)) → Pos(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Zero)) → new_primMinusNat3(Zero)
new_primMulNat0(Succ(vx60), Succ(vx5100)) → new_primPlusNat2(new_primMulNat0(vx60, Succ(vx5100)), Succ(vx5100))
new_primPlusInt1(Zero, Zero, Pos(vx500)) → Pos(new_primPlusNat3(vx500))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Zero), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), vx4000)
new_primPlusInt0(Neg(Zero), Pos(Succ(vx3000)), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), vx3000)
new_primPlusNat0(Zero, Succ(vx3000), vx500) → new_primPlusNat1(vx3000, vx500)
new_primPlusNat0(Succ(vx4000), Zero, vx500) → new_primPlusNat1(vx4000, vx500)
new_primMinusNat0(vx4000, Zero) → Pos(Succ(vx4000))
new_primMulInt(Neg(vx410), Neg(vx310), vx51) → new_primMulInt0(vx410, vx310, vx51)
new_primMinusNat1(Succ(vx40000), Zero) → Pos(Succ(vx40000))
new_primPlusNat1(vx4000, Zero) → Succ(vx4000)
new_primPlusInt0(Pos(vx400), Pos(vx300), vx50) → new_primPlusInt1(vx400, vx300, vx50)
new_primMulNat0(Succ(vx60), Zero) → Zero
new_primMulNat0(Zero, Succ(vx5100)) → Zero
new_primMinusNat2(Zero, vx3000) → Neg(Succ(vx3000))
new_primPlusInt1(Succ(vx4000), Zero, Neg(vx500)) → new_primMinusNat0(vx4000, vx500)
new_primPlusInt0(Neg(vx400), Pos(vx300), Neg(vx500)) → Neg(new_primPlusNat0(vx400, vx300, vx500))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Succ(vx3000)), Pos(Zero)) → new_primMinusNat2(Zero, Succ(new_primPlusNat2(vx4000, vx3000)))
new_primPlusInt1(Zero, Succ(vx3000), Pos(vx500)) → new_primMinusNat2(vx500, vx3000)
new_primPlusInt1(Zero, Succ(vx3000), Neg(vx500)) → Neg(new_primPlusNat1(vx3000, vx500))
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Succ(vx5000))) → new_primMinusNat0(vx5000, Zero)
new_primMulInt0(vx410, vx310, Neg(vx510)) → Neg(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Succ(vx3000)), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), Succ(new_primPlusNat2(vx4000, vx3000)))
new_primMinusNat1(Zero, Succ(vx50000)) → Neg(Succ(vx50000))
new_primPlusNat3(Zero) → Zero
new_primPlusInt0(Pos(vx400), Neg(vx300), Pos(vx500)) → Pos(new_primPlusNat0(vx400, vx300, vx500))
new_primMinusNat1(Zero, Zero) → Pos(Zero)
new_primMulNat0(Zero, Zero) → Zero
new_primMinusNat3(Succ(vx5000)) → Neg(Succ(vx5000))
new_primMinusNat3(Zero) → Pos(Zero)
new_primMinusNat0(vx4000, Succ(vx5000)) → new_primMinusNat1(vx4000, vx5000)
new_primPlusInt0(Neg(Zero), Pos(Succ(vx3000)), Pos(Zero)) → new_primMinusNat2(Zero, vx3000)
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Zero), Pos(Zero)) → new_primMinusNat2(Zero, vx4000)
new_primPlusNat2(Succ(vx40000), Zero) → Succ(vx40000)
new_primPlusNat2(Zero, Succ(vx30000)) → Succ(vx30000)
new_primPlusNat3(Succ(vx5000)) → Succ(vx5000)
new_primPlusInt0(Neg(vx400), Neg(vx300), vx50) → new_primPlusInt1(vx300, vx400, vx50)
new_primPlusInt0(Pos(Succ(vx4000)), Neg(Succ(vx3000)), Neg(vx500)) → new_primMinusNat0(Succ(new_primPlusNat2(vx4000, vx3000)), vx500)
new_primPlusInt0(Pos(Zero), Neg(Zero), Neg(vx500)) → new_primMinusNat3(vx500)
new_primPlusInt1(Succ(vx4000), Zero, Pos(vx500)) → Pos(new_primPlusNat1(vx4000, vx500))
new_primPlusNat1(vx4000, Succ(vx5000)) → Succ(Succ(new_primPlusNat2(vx4000, vx5000)))
new_primMulInt(Pos(vx410), Pos(vx310), vx51) → new_primMulInt0(vx410, vx310, vx51)
new_primMinusNat2(Succ(vx5000), vx3000) → new_primMinusNat1(vx5000, vx3000)
new_primPlusNat2(Zero, Zero) → Zero
new_primPlusNat2(Succ(vx40000), Succ(vx30000)) → Succ(Succ(new_primPlusNat2(vx40000, vx30000)))
new_primMinusNat1(Succ(vx40000), Succ(vx50000)) → new_primMinusNat1(vx40000, vx50000)
new_primPlusNat0(Succ(vx4000), Succ(vx3000), vx500) → new_primPlusNat1(Succ(new_primPlusNat2(vx4000, vx3000)), vx500)
new_primPlusInt0(Pos(Succ(vx4000)), Neg(Zero), Neg(vx500)) → new_primMinusNat0(vx4000, vx500)
new_primPlusInt0(Pos(Zero), Neg(Succ(vx3000)), Neg(vx500)) → new_primMinusNat0(vx3000, vx500)
new_primPlusInt1(Zero, Zero, Neg(vx500)) → new_primMinusNat3(vx500)
new_primMulInt1(vx410, vx310, Neg(vx510)) → Pos(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_ps(Float(vx40, vx41), Float(vx30, vx31), Float(vx50, vx51)) → Float(new_primPlusInt0(vx40, vx30, vx50), new_primMulInt(vx41, vx31, vx51))
new_primPlusInt1(Succ(vx4000), Succ(vx3000), vx50) → new_primPlusInt1(vx4000, vx3000, vx50)
new_primPlusNat0(Zero, Zero, vx500) → new_primPlusNat3(vx500)
new_primMulInt1(vx410, vx310, Pos(vx510)) → Neg(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primMulInt(Neg(vx410), Pos(vx310), vx51) → new_primMulInt1(vx410, vx310, vx51)
new_primMulInt(Pos(vx410), Neg(vx310), vx51) → new_primMulInt1(vx410, vx310, vx51)

The set Q consists of the following terms:

new_primPlusInt0(Pos(Succ(x0)), Neg(Succ(x1)), Neg(x2))
new_primPlusInt0(Neg(Succ(x0)), Pos(Succ(x1)), Pos(Zero))
new_primPlusNat3(Succ(x0))
new_primMulInt(Pos(x0), Pos(x1), x2)
new_primMulNat0(Zero, Succ(x0))
new_primPlusInt1(Zero, Succ(x0), Pos(x1))
new_primPlusInt1(Zero, Zero, Pos(x0))
new_primMulNat0(Zero, Zero)
new_primPlusInt0(Pos(Zero), Neg(Succ(x0)), Neg(x1))
new_primPlusInt1(Succ(x0), Zero, Pos(x1))
new_primPlusInt0(Neg(x0), Pos(x1), Neg(x2))
new_primMinusNat1(Succ(x0), Zero)
new_primMulInt(Neg(x0), Pos(x1), x2)
new_primMulInt(Pos(x0), Neg(x1), x2)
new_primMulInt1(x0, x1, Pos(x2))
new_primPlusInt0(Pos(x0), Neg(x1), Pos(x2))
new_primMinusNat0(x0, Zero)
new_primPlusInt1(Zero, Zero, Neg(x0))
new_primPlusInt0(Pos(Succ(x0)), Neg(Zero), Neg(x1))
new_primMulInt0(x0, x1, Neg(x2))
new_primPlusNat0(Succ(x0), Succ(x1), x2)
new_primPlusInt0(Neg(Succ(x0)), Pos(Zero), Pos(Succ(x1)))
new_primPlusNat2(Zero, Zero)
new_primPlusInt1(Succ(x0), Succ(x1), x2)
new_primMulInt1(x0, x1, Neg(x2))
new_primPlusNat2(Zero, Succ(x0))
new_primPlusInt0(Neg(x0), Neg(x1), x2)
new_primPlusNat1(x0, Succ(x1))
new_primPlusNat2(Succ(x0), Zero)
new_primMinusNat2(Zero, x0)
new_primPlusNat2(Succ(x0), Succ(x1))
new_primMinusNat1(Succ(x0), Succ(x1))
new_primPlusNat0(Zero, Succ(x0), x1)
new_primPlusNat1(x0, Zero)
new_primMinusNat1(Zero, Zero)
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Zero))
new_primPlusInt0(Neg(Zero), Pos(Succ(x0)), Pos(Zero))
new_primMulInt0(x0, x1, Pos(x2))
new_primMinusNat1(Zero, Succ(x0))
new_primMinusNat0(x0, Succ(x1))
new_ps(Float(x0, x1), Float(x2, x3), Float(x4, x5))
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Succ(x0)))
new_primPlusInt1(Succ(x0), Zero, Neg(x1))
new_primMinusNat2(Succ(x0), x1)
new_primPlusInt0(Neg(Succ(x0)), Pos(Succ(x1)), Pos(Succ(x2)))
new_primPlusInt0(Neg(Zero), Pos(Succ(x0)), Pos(Succ(x1)))
new_primPlusInt1(Zero, Succ(x0), Neg(x1))
new_primMulNat0(Succ(x0), Zero)
new_primPlusNat3(Zero)
new_primMulNat0(Succ(x0), Succ(x1))
new_primMinusNat3(Succ(x0))
new_primMulInt(Neg(x0), Neg(x1), x2)
new_primPlusNat0(Zero, Zero, x0)
new_primPlusInt0(Pos(x0), Pos(x1), x2)
new_primPlusInt0(Pos(Zero), Neg(Zero), Neg(x0))
new_primPlusInt0(Neg(Succ(x0)), Pos(Zero), Pos(Zero))
new_primMinusNat3(Zero)
new_primPlusNat0(Succ(x0), Zero, x1)

We have to consider all minimal (P,Q,R)-chains.
We use the modular non-overlap check [17] to decrease Q to the empty set.

↳ HASKELL
  ↳ BR
    ↳ HASKELL
      ↳ COR
        ↳ HASKELL
          ↳ Narrow
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ MNOCProof
QDP
                    ↳ NonTerminationProof
          ↳ Narrow

Q DP problem:
The TRS P consists of the following rules:

new_iterate(vx4, vx3, vx5) → new_iterate(vx4, vx3, new_ps(vx4, vx3, vx5))

The TRS R consists of the following rules:

new_primMulInt0(vx410, vx310, Pos(vx510)) → Pos(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Zero)) → new_primMinusNat3(Zero)
new_primMulNat0(Succ(vx60), Succ(vx5100)) → new_primPlusNat2(new_primMulNat0(vx60, Succ(vx5100)), Succ(vx5100))
new_primPlusInt1(Zero, Zero, Pos(vx500)) → Pos(new_primPlusNat3(vx500))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Zero), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), vx4000)
new_primPlusInt0(Neg(Zero), Pos(Succ(vx3000)), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), vx3000)
new_primPlusNat0(Zero, Succ(vx3000), vx500) → new_primPlusNat1(vx3000, vx500)
new_primPlusNat0(Succ(vx4000), Zero, vx500) → new_primPlusNat1(vx4000, vx500)
new_primMinusNat0(vx4000, Zero) → Pos(Succ(vx4000))
new_primMulInt(Neg(vx410), Neg(vx310), vx51) → new_primMulInt0(vx410, vx310, vx51)
new_primMinusNat1(Succ(vx40000), Zero) → Pos(Succ(vx40000))
new_primPlusNat1(vx4000, Zero) → Succ(vx4000)
new_primPlusInt0(Pos(vx400), Pos(vx300), vx50) → new_primPlusInt1(vx400, vx300, vx50)
new_primMulNat0(Succ(vx60), Zero) → Zero
new_primMulNat0(Zero, Succ(vx5100)) → Zero
new_primMinusNat2(Zero, vx3000) → Neg(Succ(vx3000))
new_primPlusInt1(Succ(vx4000), Zero, Neg(vx500)) → new_primMinusNat0(vx4000, vx500)
new_primPlusInt0(Neg(vx400), Pos(vx300), Neg(vx500)) → Neg(new_primPlusNat0(vx400, vx300, vx500))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Succ(vx3000)), Pos(Zero)) → new_primMinusNat2(Zero, Succ(new_primPlusNat2(vx4000, vx3000)))
new_primPlusInt1(Zero, Succ(vx3000), Pos(vx500)) → new_primMinusNat2(vx500, vx3000)
new_primPlusInt1(Zero, Succ(vx3000), Neg(vx500)) → Neg(new_primPlusNat1(vx3000, vx500))
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Succ(vx5000))) → new_primMinusNat0(vx5000, Zero)
new_primMulInt0(vx410, vx310, Neg(vx510)) → Neg(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Succ(vx3000)), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), Succ(new_primPlusNat2(vx4000, vx3000)))
new_primMinusNat1(Zero, Succ(vx50000)) → Neg(Succ(vx50000))
new_primPlusNat3(Zero) → Zero
new_primPlusInt0(Pos(vx400), Neg(vx300), Pos(vx500)) → Pos(new_primPlusNat0(vx400, vx300, vx500))
new_primMinusNat1(Zero, Zero) → Pos(Zero)
new_primMulNat0(Zero, Zero) → Zero
new_primMinusNat3(Succ(vx5000)) → Neg(Succ(vx5000))
new_primMinusNat3(Zero) → Pos(Zero)
new_primMinusNat0(vx4000, Succ(vx5000)) → new_primMinusNat1(vx4000, vx5000)
new_primPlusInt0(Neg(Zero), Pos(Succ(vx3000)), Pos(Zero)) → new_primMinusNat2(Zero, vx3000)
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Zero), Pos(Zero)) → new_primMinusNat2(Zero, vx4000)
new_primPlusNat2(Succ(vx40000), Zero) → Succ(vx40000)
new_primPlusNat2(Zero, Succ(vx30000)) → Succ(vx30000)
new_primPlusNat3(Succ(vx5000)) → Succ(vx5000)
new_primPlusInt0(Neg(vx400), Neg(vx300), vx50) → new_primPlusInt1(vx300, vx400, vx50)
new_primPlusInt0(Pos(Succ(vx4000)), Neg(Succ(vx3000)), Neg(vx500)) → new_primMinusNat0(Succ(new_primPlusNat2(vx4000, vx3000)), vx500)
new_primPlusInt0(Pos(Zero), Neg(Zero), Neg(vx500)) → new_primMinusNat3(vx500)
new_primPlusInt1(Succ(vx4000), Zero, Pos(vx500)) → Pos(new_primPlusNat1(vx4000, vx500))
new_primPlusNat1(vx4000, Succ(vx5000)) → Succ(Succ(new_primPlusNat2(vx4000, vx5000)))
new_primMulInt(Pos(vx410), Pos(vx310), vx51) → new_primMulInt0(vx410, vx310, vx51)
new_primMinusNat2(Succ(vx5000), vx3000) → new_primMinusNat1(vx5000, vx3000)
new_primPlusNat2(Zero, Zero) → Zero
new_primPlusNat2(Succ(vx40000), Succ(vx30000)) → Succ(Succ(new_primPlusNat2(vx40000, vx30000)))
new_primMinusNat1(Succ(vx40000), Succ(vx50000)) → new_primMinusNat1(vx40000, vx50000)
new_primPlusNat0(Succ(vx4000), Succ(vx3000), vx500) → new_primPlusNat1(Succ(new_primPlusNat2(vx4000, vx3000)), vx500)
new_primPlusInt0(Pos(Succ(vx4000)), Neg(Zero), Neg(vx500)) → new_primMinusNat0(vx4000, vx500)
new_primPlusInt0(Pos(Zero), Neg(Succ(vx3000)), Neg(vx500)) → new_primMinusNat0(vx3000, vx500)
new_primPlusInt1(Zero, Zero, Neg(vx500)) → new_primMinusNat3(vx500)
new_primMulInt1(vx410, vx310, Neg(vx510)) → Pos(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_ps(Float(vx40, vx41), Float(vx30, vx31), Float(vx50, vx51)) → Float(new_primPlusInt0(vx40, vx30, vx50), new_primMulInt(vx41, vx31, vx51))
new_primPlusInt1(Succ(vx4000), Succ(vx3000), vx50) → new_primPlusInt1(vx4000, vx3000, vx50)
new_primPlusNat0(Zero, Zero, vx500) → new_primPlusNat3(vx500)
new_primMulInt1(vx410, vx310, Pos(vx510)) → Neg(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primMulInt(Neg(vx410), Pos(vx310), vx51) → new_primMulInt1(vx410, vx310, vx51)
new_primMulInt(Pos(vx410), Neg(vx310), vx51) → new_primMulInt1(vx410, vx310, vx51)

Q is empty.
We have to consider all (P,Q,R)-chains.
We used the non-termination processor [17] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

The TRS P consists of the following rules:

new_iterate(vx4, vx3, vx5) → new_iterate(vx4, vx3, new_ps(vx4, vx3, vx5))

The TRS R consists of the following rules:

new_primMulInt0(vx410, vx310, Pos(vx510)) → Pos(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Zero)) → new_primMinusNat3(Zero)
new_primMulNat0(Succ(vx60), Succ(vx5100)) → new_primPlusNat2(new_primMulNat0(vx60, Succ(vx5100)), Succ(vx5100))
new_primPlusInt1(Zero, Zero, Pos(vx500)) → Pos(new_primPlusNat3(vx500))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Zero), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), vx4000)
new_primPlusInt0(Neg(Zero), Pos(Succ(vx3000)), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), vx3000)
new_primPlusNat0(Zero, Succ(vx3000), vx500) → new_primPlusNat1(vx3000, vx500)
new_primPlusNat0(Succ(vx4000), Zero, vx500) → new_primPlusNat1(vx4000, vx500)
new_primMinusNat0(vx4000, Zero) → Pos(Succ(vx4000))
new_primMulInt(Neg(vx410), Neg(vx310), vx51) → new_primMulInt0(vx410, vx310, vx51)
new_primMinusNat1(Succ(vx40000), Zero) → Pos(Succ(vx40000))
new_primPlusNat1(vx4000, Zero) → Succ(vx4000)
new_primPlusInt0(Pos(vx400), Pos(vx300), vx50) → new_primPlusInt1(vx400, vx300, vx50)
new_primMulNat0(Succ(vx60), Zero) → Zero
new_primMulNat0(Zero, Succ(vx5100)) → Zero
new_primMinusNat2(Zero, vx3000) → Neg(Succ(vx3000))
new_primPlusInt1(Succ(vx4000), Zero, Neg(vx500)) → new_primMinusNat0(vx4000, vx500)
new_primPlusInt0(Neg(vx400), Pos(vx300), Neg(vx500)) → Neg(new_primPlusNat0(vx400, vx300, vx500))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Succ(vx3000)), Pos(Zero)) → new_primMinusNat2(Zero, Succ(new_primPlusNat2(vx4000, vx3000)))
new_primPlusInt1(Zero, Succ(vx3000), Pos(vx500)) → new_primMinusNat2(vx500, vx3000)
new_primPlusInt1(Zero, Succ(vx3000), Neg(vx500)) → Neg(new_primPlusNat1(vx3000, vx500))
new_primPlusInt0(Neg(Zero), Pos(Zero), Pos(Succ(vx5000))) → new_primMinusNat0(vx5000, Zero)
new_primMulInt0(vx410, vx310, Neg(vx510)) → Neg(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Succ(vx3000)), Pos(Succ(vx5000))) → new_primMinusNat2(Succ(vx5000), Succ(new_primPlusNat2(vx4000, vx3000)))
new_primMinusNat1(Zero, Succ(vx50000)) → Neg(Succ(vx50000))
new_primPlusNat3(Zero) → Zero
new_primPlusInt0(Pos(vx400), Neg(vx300), Pos(vx500)) → Pos(new_primPlusNat0(vx400, vx300, vx500))
new_primMinusNat1(Zero, Zero) → Pos(Zero)
new_primMulNat0(Zero, Zero) → Zero
new_primMinusNat3(Succ(vx5000)) → Neg(Succ(vx5000))
new_primMinusNat3(Zero) → Pos(Zero)
new_primMinusNat0(vx4000, Succ(vx5000)) → new_primMinusNat1(vx4000, vx5000)
new_primPlusInt0(Neg(Zero), Pos(Succ(vx3000)), Pos(Zero)) → new_primMinusNat2(Zero, vx3000)
new_primPlusInt0(Neg(Succ(vx4000)), Pos(Zero), Pos(Zero)) → new_primMinusNat2(Zero, vx4000)
new_primPlusNat2(Succ(vx40000), Zero) → Succ(vx40000)
new_primPlusNat2(Zero, Succ(vx30000)) → Succ(vx30000)
new_primPlusNat3(Succ(vx5000)) → Succ(vx5000)
new_primPlusInt0(Neg(vx400), Neg(vx300), vx50) → new_primPlusInt1(vx300, vx400, vx50)
new_primPlusInt0(Pos(Succ(vx4000)), Neg(Succ(vx3000)), Neg(vx500)) → new_primMinusNat0(Succ(new_primPlusNat2(vx4000, vx3000)), vx500)
new_primPlusInt0(Pos(Zero), Neg(Zero), Neg(vx500)) → new_primMinusNat3(vx500)
new_primPlusInt1(Succ(vx4000), Zero, Pos(vx500)) → Pos(new_primPlusNat1(vx4000, vx500))
new_primPlusNat1(vx4000, Succ(vx5000)) → Succ(Succ(new_primPlusNat2(vx4000, vx5000)))
new_primMulInt(Pos(vx410), Pos(vx310), vx51) → new_primMulInt0(vx410, vx310, vx51)
new_primMinusNat2(Succ(vx5000), vx3000) → new_primMinusNat1(vx5000, vx3000)
new_primPlusNat2(Zero, Zero) → Zero
new_primPlusNat2(Succ(vx40000), Succ(vx30000)) → Succ(Succ(new_primPlusNat2(vx40000, vx30000)))
new_primMinusNat1(Succ(vx40000), Succ(vx50000)) → new_primMinusNat1(vx40000, vx50000)
new_primPlusNat0(Succ(vx4000), Succ(vx3000), vx500) → new_primPlusNat1(Succ(new_primPlusNat2(vx4000, vx3000)), vx500)
new_primPlusInt0(Pos(Succ(vx4000)), Neg(Zero), Neg(vx500)) → new_primMinusNat0(vx4000, vx500)
new_primPlusInt0(Pos(Zero), Neg(Succ(vx3000)), Neg(vx500)) → new_primMinusNat0(vx3000, vx500)
new_primPlusInt1(Zero, Zero, Neg(vx500)) → new_primMinusNat3(vx500)
new_primMulInt1(vx410, vx310, Neg(vx510)) → Pos(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_ps(Float(vx40, vx41), Float(vx30, vx31), Float(vx50, vx51)) → Float(new_primPlusInt0(vx40, vx30, vx50), new_primMulInt(vx41, vx31, vx51))
new_primPlusInt1(Succ(vx4000), Succ(vx3000), vx50) → new_primPlusInt1(vx4000, vx3000, vx50)
new_primPlusNat0(Zero, Zero, vx500) → new_primPlusNat3(vx500)
new_primMulInt1(vx410, vx310, Pos(vx510)) → Neg(new_primMulNat0(new_primMulNat0(vx410, vx310), vx510))
new_primMulInt(Neg(vx410), Pos(vx310), vx51) → new_primMulInt1(vx410, vx310, vx51)
new_primMulInt(Pos(vx410), Neg(vx310), vx51) → new_primMulInt1(vx410, vx310, vx51)


s = new_iterate(vx4, vx3, vx5) evaluates to t =new_iterate(vx4, vx3, new_ps(vx4, vx3, vx5))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from new_iterate(vx4, vx3, vx5) to new_iterate(vx4, vx3, new_ps(vx4, vx3, vx5)).




Haskell To QDPs